<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>markdown to html</title>
    <link rel="stylesheet" href="../public/css/index.css">
    <link rel="icon" href="http://localhost:3001/favicon.png">
</head>
<body>
    <h1>__dirname</h1>
<p>&quot;type&quot;: &quot;module&quot;,
&quot;dev&quot;:&quot;nodemon index.js&quot;,
浏览器解析的绝对路径，&quot; / &quot; 代表的是服务器的根目录：http://主机地址:端口号/</p>
<p>path.resolve() 将返回当前工作目录的绝对路径。</p>
<p>在 CommonJS 中，__dirname 是一个全局变量，代表当前模块文件所在的目录的绝对路径。然而，在 ES 模块中，没有这个全局变量。</p>
<p>如果你想在 ES 模块中使用类似__dirname 的功能，你可以使用 import.meta.url 来获取当前模块文件的 URL，然后使用 URL.fileURLToPath()将其转换为文件路径。</p>
<h1>type=&quot;image/x-icon&quot;</h1>
<p>是一个 MIME 类型，用于标识文件或资源的类型。在这个上下文中，它通常用于链接到图标文件，如 .ico 文件</p>
<h1>POSIX 即 Portable Operating System Interface（可移植操作系统接口），是一种标准。</h1>
<p>POSIX 标准的定义包括文件系统、进程、线程、网络、安全、编程语言等，使程序员可以轻松地在不同的操作系统上开发应用程序。</p>
<h1>child_process 子进程</h1>
<p>spawn 执行命令
exec 执行命令
execFile 执行可执行文件
fork 创建 node 子进程
execSync 执行命令 同步执行
execFileSync 执行可执行文件 同步执行
spawnSync 执行命令 同步执行</p>
<p>execSync(&#39;start chrome <a href="http://www.baidu.com">http://www.baidu.com</a> --incognito&#39;)
start: 这是一个 Windows 命令提示符（CMD）命令，用于启动一个单独的窗口来运行指定的程序或命令。
chrome: 这指定了要启动的程序，即 Google Chrome 浏览器。
<a href="http://www.baidu.com">http://www.baidu.com</a>: 这是要在浏览器中打开的网址。
--incognito: 这是一个传递给 Chrome 浏览器的命令行参数，指示浏览器以隐身模式启动。在隐身模式下，浏览器不会保存浏览历史、下载记录、cookie 等信息。</p>
<p>使用 spawn 函数启动一个子进程来执行 netstat -an 命令。这个命令会列出所有活动的网络连接和监听的端口。
spawn 用于执行一些实时获取的信息因为 spawn 返回的是流边执行边返回，exec 是返回一个完整的 buffer，buffer 的大小是 200k，如果超出会报错，而 spawn 是无上限的。</p>
<p>exec -&gt; execFile -&gt; spawn
exec 是底层通过 execFile 实现 execFile 底层通过 spawn 实现</p>
<h1>fs</h1>
<p>一个字节（byte）是计算机中最小的存储单位。
这是因为在计算机中，一个字节通常由 8 个二进制位组成。</p>
<p>十六进制数制中，一个数字可以表示 4 个二进制位
（0-9 表示 0000 到 1001，A-F 表示 1010 到 1111）。所以，
两个十六进制数字正好可以表示一个字节的 8 个二进制位。</p>
<p>&#39;utf8&#39;: 当使用 &#39;utf8&#39; 编码时，每个字符并不总是代表 4 个二进制位。UTF-8 是一种变长编码，其中一些字符可能使用 1 到 4 个字节，具体取决于字符。
&#39;ascii&#39;: ASCII 编码中，每个字符确实代表 7 个二进制位（实际上是 8 位，但通常我们说 7 位来表示一个字节）。
&#39;base64&#39;: 在 Base64 编码中，每三个字节的数据被编码为四个字符的字符串。每个字符代表一个 Base64 字符集中的一个字符，该字符集包括大小写字母、数字和特殊字符。</p>
<p>一个字节等于 8 位，即 0.0009766KB，1KB=1024 字节，1MB=1024KB。</p>
<p>ASCII 编码：ASCII 编码是最早的编码标准，主要用于英文字符的编码。它的优点是简单且易于实现，因此在早期的计算机系统中广泛使用。然而，ASCII 编码只能表示 128 个字符，对于其他语言（如中文、日文、阿拉伯语等）则无法表示。因此，ASCII 编码在现代的应用中已经逐渐被其他更复杂的编码方式所取代。
UTF-8 编码：UTF-8 编码是一种变长字符编码，可以表示任何 Unicode 标准的字符。它兼容 ASCII 编码，因此在 ASCII 编码的基础上增加了对其他语言的支持。UTF-8 编码广泛应用于网页、电子邮件和其他文本数据的传输，因为它可以跨平台和跨语言使用。
Base64 编码：Base64 编码主要用于将二进制数据转化为 ASCII 字符串，以便在文本中传输或存储。它将每三个字节的数据转换为四个字符的 Base64 字符串，并且对某些非可打印字符进行了替换，以确保结果是 ASCII 字符串。Base64 编码常用于将二进制数据嵌入到文本文件中，如 PDF、Word 文档等，或者在网络中传输二进制数据时进行数据加密或隐藏。</p>
<h1>npm</h1>
<p>在 node 环境中无法操作 DOM 和 BOM，但是如果非要操作 DOM 和 BOM 也是可以的我们需要使用第三方库帮助我们 jsdom
npm i jsdom
Commander 是一个用于构建命令行工具的 npm 库
Inquirer 是一个强大的命令行交互工具，用于与用户进行交互和收集信息
Ora 是一个用于在命令行界面显示加载动画的 npm 库
Download-git-repo 是一个用于下载 Git 仓库的 npm 库</p>
<h1>软件</h1>
<h2>FFmpeg</h2>
<p><a href="https://github.com/BtbN/FFmpeg-Builds/releases">https://github.com/BtbN/FFmpeg-Builds/releases</a>
是一个开源的跨平台多媒体处理工具，可以用于处理音频、视频和多媒体流。它提供了一组强大的命令行工具和库，可以进行视频转码、视频剪辑、音频提取、音视频合并、流媒体传输等操作。</p>
<h2>pngquant</h2>
<p>PNGquant 是一个用于有损压缩 PNG 图像的实用程序和库。它采用直方图算法来统计图像中的颜色分布情况，并使用自适应抖动算法来减少图像杂质。
<a href="https://pngquant.com/">https://pngquant.com/</a></p>

</body>
</html>
